package com.bdf.ipharma.gui;

import java.awt.Image;

import javax.swing.ImageIcon;

import org.springframework.context.ApplicationContext;

import com.bdf.ipharma.config.Config;
import com.bdf.ipharma.dao.DispenserDAO;
import com.bdf.ipharma.service.DispenserService;
import com.bdf.ipharma.starter.McdPrs;

/**
 * IPHARMA 2011
 * @author jmazzetti
 */
public class Images
{
  static public ImageIcon[] buttOptions = new ImageIcon[4];
  static public ImageIcon[] buttOptionsDn = new ImageIcon[4];

  // Menu
  static public ImageIcon logo           = new ImageIcon( McdPrs.dirImageMcd + "logo.gif" );
  static public ImageIcon logoBig        = new ImageIcon( McdPrs.dirImageMcd + "dispensers.jpg" );
  static public ImageIcon buttOk         = new ImageIcon( McdPrs.dirImageMcd + "aceptar.jpg" );
  static public ImageIcon prodStock         = new ImageIcon( McdPrs.dirImageMcd + "boton_rep_up.jpg" );
  static public ImageIcon prodStock2         = new ImageIcon( McdPrs.dirImageMcd + "boton_rep_down.jpg" );  
  static public ImageIcon prodStockOff         = new ImageIcon( McdPrs.dirImageMcd + "bt_repOff.png" ); 
  static public ImageIcon buttOkDn       = new ImageIcon( McdPrs.dirImageMcd + "aceptar2.jpg" );
  static public ImageIcon buttOkLong         = new ImageIcon( McdPrs.dirImageMcd + "aceptarLargo.png" );
  static public ImageIcon buttOkDnLong       = new ImageIcon( McdPrs.dirImageMcd + "aceptar2Largo.png" );
  static public ImageIcon buttKey        = new ImageIcon( McdPrs.dirImageMcd + "key.jpg" );
  static public ImageIcon buttKeyDn      = new ImageIcon( McdPrs.dirImageMcd + "key2.jpg" );
  static public ImageIcon buttChange     = new ImageIcon( McdPrs.dirImageMcd + "cambiar.gif" );
  static public ImageIcon buttChangeDn   = new ImageIcon( McdPrs.dirImageMcd + "cambiar2.gif" );
  static public ImageIcon buttChangeOff  = new ImageIcon( McdPrs.dirImageMcd + "cambiar_no.gif" );
  static public ImageIcon buttExtract    = new ImageIcon( McdPrs.dirImageMcd + "extract.gif" );
  static public ImageIcon buttExtractDn  = new ImageIcon( McdPrs.dirImageMcd + "extract2.gif" );
  static public ImageIcon buttDoEmpty    = new ImageIcon( McdPrs.dirImageMcd + "vaciar.gif" );
  static public ImageIcon buttDoEmptyDn  = new ImageIcon( McdPrs.dirImageMcd + "vaciar2.gif" );
  static public ImageIcon buttHelp       = new ImageIcon( McdPrs.dirImageMcd + "help_up.jpg" );
  static public ImageIcon buttExit       = new ImageIcon( McdPrs.dirImageMcd + "exit_up.jpg" );
  static public ImageIcon buttHelpDn     = new ImageIcon( McdPrs.dirImageMcd + "help_down.jpg" );
  static public ImageIcon buttExitDn     = new ImageIcon( McdPrs.dirImageMcd + "exit_down.jpg" );
  static public ImageIcon buttHome     = new ImageIcon( McdPrs.dirImageMcd + "home_up.jpg" );
  static public ImageIcon buttHomeDn     = new ImageIcon( McdPrs.dirImageMcd + "home_down.jpg" );

  static public ImageIcon butt1          = new ImageIcon( McdPrs.dirImageMcd + "extraccion.png" );
  static public ImageIcon butt2          = new ImageIcon( McdPrs.dirImageMcd + "devolucion.gif" );
  static public ImageIcon butt3          = new ImageIcon( McdPrs.dirImageMcd + "vaciarbuzon.gif" );
  static public ImageIcon butt4          = new ImageIcon( McdPrs.dirImageMcd + "reposicion.gif" );
  static public ImageIcon butt1Dn        = new ImageIcon( McdPrs.dirImageMcd + "extraccionDn.png" );
  static public ImageIcon butt2Dn        = new ImageIcon( McdPrs.dirImageMcd + "devolucion2.gif" );
  static public ImageIcon butt3Dn        = new ImageIcon( McdPrs.dirImageMcd + "vaciarbuzon2.gif" );
  static public ImageIcon butt4Dn        = new ImageIcon( McdPrs.dirImageMcd + "reposicion2.gif" );
  static public ImageIcon butt1Off       = new ImageIcon( McdPrs.dirImageMcd + "extraccion_no.gif" );
  static public ImageIcon butt2Off       = new ImageIcon( McdPrs.dirImageMcd + "devolucion_no.gif" );
  static public ImageIcon butt3Off       = new ImageIcon( McdPrs.dirImageMcd + "vaciarbuzon_no.gif" );
  static public ImageIcon butt4Off       = new ImageIcon( McdPrs.dirImageMcd + "reposicion_no.gif" );
  // operations
  static public ImageIcon buttAssign     = new ImageIcon( McdPrs.dirImageMcd + "cambiar.jpg" );
  static public ImageIcon buttAssignDn   = new ImageIcon( McdPrs.dirImageMcd + "cambiar2.jpg" );
  static public ImageIcon buttEmpty      = new ImageIcon( McdPrs.dirImageMcd + "vaciar.jpg" );
  static public ImageIcon buttEmptyDn    = new ImageIcon( McdPrs.dirImageMcd + "vaciar2.jpg" );
  static public ImageIcon buttProduct    = new ImageIcon( McdPrs.dirImageMcd + "product.gif" );
  static public ImageIcon buttProductDn  = new ImageIcon( McdPrs.dirImageMcd + "product2.gif" );
  static public ImageIcon buttAceptAssign     = new ImageIcon( McdPrs.dirImageMcd + "aceptar_asig.gif" );
  static public ImageIcon buttAceptAssignDn   = new ImageIcon( McdPrs.dirImageMcd + "aceptar_asig2.gif" );
  static public ImageIcon buttCancelAssign    = new ImageIcon( McdPrs.dirImageMcd + "cancelar.gif" );
  static public ImageIcon buttCancelAssignDn  = new ImageIcon( McdPrs.dirImageMcd + "cancelar2.gif" );
  static public ImageIcon buttCancelAssignOff = new ImageIcon( McdPrs.dirImageMcd + "cancelar_no.gif" );
  static public ImageIcon buttCalcAcept       = new ImageIcon( McdPrs.dirImageMcd + "calc_acept.gif" );
  static public ImageIcon buttCalcAceptDn     = new ImageIcon( McdPrs.dirImageMcd + "calc_acept2.gif" );
  static public ImageIcon buttCalcCancel      = new ImageIcon( McdPrs.dirImageMcd + "calc_cancel.gif" );
  static public ImageIcon buttCalcCancelDn    = new ImageIcon( McdPrs.dirImageMcd + "calc_cancel2.gif" );
  static public ImageIcon buttCalcKey    = new ImageIcon( McdPrs.dirImageMcd + "calc_num.gif" );
  static public ImageIcon buttCalcKeyDn  = new ImageIcon( McdPrs.dirImageMcd + "calc_num2.gif" );
  static public ImageIcon buttCalcKeyOff = new ImageIcon( McdPrs.dirImageMcd + "calc_num_no.gif" );
  static public ImageIcon buttYes        = new ImageIcon( McdPrs.dirImageMcd + "big_button.gif" );
  static public ImageIcon buttYesDn      = new ImageIcon( McdPrs.dirImageMcd + "big_button2.gif" );
  static public ImageIcon buttNo         = buttYes;
  static public ImageIcon buttNoDn       = buttYesDn;
  static public ImageIcon buttWhite      = new ImageIcon( McdPrs.dirImageMcd + "blanco.gif" );
  // tasks buttons
  static public ImageIcon buttUpdate     = new ImageIcon( McdPrs.dirImageMcd + "actualizar.gif" );
  static public ImageIcon buttUpdateDn   = new ImageIcon( McdPrs.dirImageMcd + "actualizar2.gif" );
  static public ImageIcon buttBatch      = new ImageIcon( McdPrs.dirImageMcd + "task_batch.gif" );
  static public ImageIcon buttBatchDn    = new ImageIcon( McdPrs.dirImageMcd + "task_batch2.gif" );
  static public ImageIcon buttQty        = new ImageIcon( McdPrs.dirImageMcd + "task_qty.gif" );
  static public ImageIcon buttQtyDn      = new ImageIcon( McdPrs.dirImageMcd + "task_qty2.gif" );
  static public ImageIcon buttDone       = new ImageIcon( McdPrs.dirImageMcd + "task_done.gif" );
  static public ImageIcon buttDoneDn     = new ImageIcon( McdPrs.dirImageMcd + "task_doneDn.png" );
  static public ImageIcon buttDoneUp     = new ImageIcon( McdPrs.dirImageMcd + "task_done3.gif" );
  static public ImageIcon buttSource     = new ImageIcon( McdPrs.dirImageMcd + "task_source.gif" );
  static public ImageIcon buttGenericGrey     = new ImageIcon( McdPrs.dirImageMcd + "bt_generico.png" );
  static public ImageIcon buttGenericGreyDn     = new ImageIcon( McdPrs.dirImageMcd + "bt_generico_dn.jpg" );
  
  //Logos
  static public ImageIcon logoHtalAustral     = new ImageIcon( McdPrs.dirImageMcd + "logo_htal_austral.png" );
  static public ImageIcon logoIpharma    = new ImageIcon( McdPrs.dirImageMcd + "logoIpharma.png" );
  static public ImageIcon footerIpharma    = new ImageIcon( McdPrs.dirImageMcd + "footer_iphamra.png" );
  static public ImageIcon logoHeader    = new ImageIcon( McdPrs.dirImageMcd + "logo_header.png" );
  static public ImageIcon bgHeader    = new ImageIcon( McdPrs.dirImageMcd + "bg_header.png" );
  
  //Pantalla login
  static public ImageIcon loginBackground    = new ImageIcon( McdPrs.dirImageMcd + "ipharma_login_bg.png" );
  static public ImageIcon loginBtn    = new ImageIcon( McdPrs.dirImageMcd + "login.jpg" );
  static public ImageIcon loginClearBtn    = new ImageIcon( McdPrs.dirImageMcd + "clear.jpg" );
  static public ImageIcon loginNavBar    = new ImageIcon( McdPrs.dirImageMcd + "nav_bar_top_login.png" );
  static public ImageIcon loginCloseBtn    = new ImageIcon( McdPrs.dirImageMcd + "btn_closeLogin.png" );
  static public ImageIcon loginHelpBtn    = new ImageIcon( McdPrs.dirImageMcd + "btn_helpLogin.png" );
  
  //Pantalla Extraccion
  static public ImageIcon bgAsignacionPanel    = new ImageIcon( McdPrs.dirImageMcd + "bg_asignacion.png" );
  static public ImageIcon bgProductosPanel    = new ImageIcon( McdPrs.dirImageMcd + "bg_productos.png" );
  
  //PopUp Extraccion
  static public ImageIcon bgExtractionPopUp    = new ImageIcon( McdPrs.dirImageMcd + "bg_extraction_counter.png" );
  static public ImageIcon btnAdd    = new ImageIcon( McdPrs.dirImageMcd + "bt_add.png" );
  static public ImageIcon btnAddDn    = new ImageIcon( McdPrs.dirImageMcd + "bt_add.dn.png" );
  static public ImageIcon btnBottom    = new ImageIcon( McdPrs.dirImageMcd + "bt_bottom.png" );
  static public ImageIcon btnBottomDn    = new ImageIcon( McdPrs.dirImageMcd + "bt_bottom.dn.png" );
  
//PopUp Reposicion
  static public ImageIcon bgReposicionPopUp    = new ImageIcon( McdPrs.dirImageMcd + "bg_popUp_reposicion.png" );
  
  static public ImageIcon btnVaciar    = new ImageIcon( McdPrs.dirImageMcd + "vaciar_up.jpg" );
  static public ImageIcon btnVaciarDn    = new ImageIcon( McdPrs.dirImageMcd + "vaciar_down.jpg" );
  
  
//  static public ImageIcon headerHorizontalBar    = new ImageIcon( McdPrs.dirImageMcd + "5_horizontalHeaderColumn.png" );
//  static public ImageIcon headerVerticalBar    = new ImageIcon( McdPrs.dirImageMcd + "5_horizontalHeaderRow.png" );
  
  public static ImageIcon getHeaderRowImage(ApplicationContext appContext){
	  String dispenserId = Config.getPropertie("dispenser.id");
	  DispenserService dispenserService = (DispenserService) appContext.getBean("dispenserService");
	  int rows = dispenserService.getDispenserParameters(dispenserId).getMaxFilas();
	  return new ImageIcon( McdPrs.dirImageMcd + rows+"_horizontalHeaderRow.png" );
  }
  
  public static ImageIcon getHeaderColumnImage(ApplicationContext appContext){
	  String dispenserId = Config.getPropertie("dispenser.id");
	  DispenserService dispenserService = (DispenserService) appContext.getBean("dispenserService");
	  int columns = dispenserService.getDispenserParameters(dispenserId).getMaxColumnas();
	  return new ImageIcon( McdPrs.dirImageMcd + columns+"_horizontalHeaderColumn.png" );
  }

  
  static public ImageIcon bgTitleReposicion    = new ImageIcon( McdPrs.dirImageMcd + "bg_reposicionTitle.png" );
  
  
  //Choice Action
  static public ImageIcon bgChoiceAction = new ImageIcon( McdPrs.dirImageMcd + "bgChoiceAction.png" );
  
  {
    for ( int i = 0; i < 4; i++ )
    {
      buttOptions[i] = new ImageIcon( McdPrs.dirImageMcd + "option" + i + ".gif" );
      buttOptionsDn[i] = new ImageIcon( McdPrs.dirImageMcd + "2option" + i + ".gif" );
    }
  }

  static final String IMG_BTN_CANCEL    = "cancelar.jpg";
  static final String IMG_BTN_SI        = "si.jpg";
  static final String IMG_BTN_SI_DN     = "si2.jpg";
  static final String IMG_BTN_NO        = "no.jpg";
  static final String IMG_BTN_NO_DN     = "no2.jpg";
  
  
  //Teclado 2
  static public final ImageIcon BTN_KEY     = new ImageIcon( McdPrs.dirImageMcd + "key-up_gr.jpg" );
  static public final ImageIcon BTN_KEY_DN     =  new ImageIcon( McdPrs.dirImageMcd + "key-press_gr.jpg" );
  
  /**
   * Devuelve letras para el teclado
   * @param letter
   * @return
   */
  public static ImageIcon getLetterImage(String letter){
	  return new ImageIcon( McdPrs.dirImageMcd +"keyboard/key-"+letter+".jpg" );
  }

}
